//version1
//#include<stdio.h>
//#include<string.h>
//#include<unistd.h>
//
//#define STYLE '#'
//#define NUM 101
//#define POINT '.'
//
//static int count = 7;
//void proc()
//{
//    //进度条
//    char buff[NUM];
//    memset(buff,'\0',NUM);
//
//    //流动点
//    char table[count];
//    memset(table,'\0',count);
//    int i = 0;
//    while(i < NUM - 1)
//    {
//
//        buff[i] = STYLE;
//        int t = i % count;
//        if(t < count - 1)
//            table[t] = POINT;
//        else 
//            memset(table,' ',count);
//        printf("[%-100s][%d%%]%s\r",buff,i + 1,table);
//        i++;
//        fflush(stdout);
//        usleep(50000);
//    }
//
//    printf("\r\n");
//}


//version2
//真实的进度条，应该根据具体的下载量来更新进度
#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include<unistd.h>

#define STYLE '#'
#define NUM 101
#define POINT '.'

static int count = 7;
void FlushProcess(double total,double cur)
{
    double rate = (cur / total) * 100;
    // printf("test:%.1lf\r",rate);
    // fflush(stdout);
    //printf("hahahha\n");
    //进度条
    char buff[NUM];
    memset(buff,'\0',NUM);

    //流动点
    char table[count];
    memset(table,'\0',count);
    int i = 0;
    while(i < (int)rate)
    {

      buff[i] = STYLE;
      int t = i % count;
      if(t < count - 1)
          table[t] = POINT;
      else 
          memset(table,' ',count);
      printf("[%-100s][%.1lf%%]%s\r",buff,rate,table);
      i++;
      fflush(stdout);
      //usleep(50000);
    }

     //printf("\r\n");
}
